import axios from 'axios'
import { BASE_URL } from './config'
import { hasToken, getToken, removeToken } from './token'
import { Toast } from 'antd-mobile'

// 配置axios
// 1. 配置axios的基础地址
axios.defaults.baseURL = BASE_URL

// 2. 配置axios的请求拦截器
axios.interceptors.request.use(
  function (config) {
    // 如果本地有token, 就带着
    if (hasToken()) {
      config.headers.authorization = getToken()
    }
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 3. 配置axios的响应拦截器
axios.interceptors.response.use(
  function (response) {
    const { description, status } = response.data
    if (status === 400 && description === 'token异常或者过期') {
      // token过期了
      removeToken()
      Toast.info('尊敬的用户, 您的登录状态已过期, 请重新登录', 2)
    }
    return response
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)

// react中, 思想, 要用, 就导入
// 将来: 这边配置完了axios后, 代码中, 就导入这个配置过的axios即可
export default axios
